// 处理路由守卫
import router from "./router"
import store from "@/store"

// 前置守卫
/**
 * @param {*} to 要到那里去
 * @param {*} from 从哪里来
 * @param {*} to 是否要去
 */

// 路由白名单
const whiteList = ["/login", "/import", "/404", "/401"]

// 路由守卫
router.beforeEach(async (to, from, next) => {
  // 用户已登录 不允许进入login
  if (store.getters.token) {
    if (to.path === "/login") {
      next("/")
    } else {
      // 判断用户资料是否存在 没有获取
      if (!store.getters.hasUserInfo) {
        await store.dispatch("user/getUserInfo")
      }
      next()
    }
  } else {
    // 未登录 只能进入login
    if (whiteList.includes(to.path)) {
      next()
    } else {
      next("/login")
    }
  }
})
